Chaos V5.3 Dokumentation
************************

Diese Datei beschreibt den Umgang mit Chaos V5.3, einem Programm zur Organisation von Schachturnieren. Chaos kann Turniere nach Schweizer System ebenso wie Rundenturniere ausrichten und anschließend auf Wunsch sogar die DWZ-Zahlen der Teilnehmer neu berechnen.

Copyright und andere rechtliche Dinge
*************************************

     Copyright © 1993	Jochen Wiedmann
     			Am Eisteich 9
     		  72555 Metzingen (Deutschland)
     			Tel. 07123 / 14881
     			Internet: wiedmann@mailserv.zdv.uni-tuebingen.de

Diese Dokumentation sowie das gesamte Programmpaket dürfen im Rahmen der ``GNU General Public License'' kopiert, verändert und weitergegeben werden solange diese Copyright-Notiz und diese Erlaubnis unverändert auf allen Kopien enthalten ist und die ``GNU General Public License'' der Free Software Foundation (in der Datei COPYING) mitkopiert und weitergegeben wird.

Es wird keine Garantie gegeben, daß die Programme, die in dieser Dokumentation beschrieben werden, 100%ig zuverlässig sind. Sie benutzen diese Programme auf eigene Gefahr. Der Autor kann auf keinen Fall für irgendwelche Schäden verantwortlich gemacht werden, die durch die Anwendung dieser Programme entstehen.

Das Programme und der Quelltext (oder Teile davon) dürfen ausdrücklich auf Maschinen benutzt werden, die für die Forschung, Entwicklung, Konstruktion, Tests oder Produktion von Waffen oder anderen militärischen Gütern benutzt werden. (Je mehr die Leute sich mit Schach beschäftigen, desto weniger kommen sie dazu, anderen Unsinn zu treiben. :-)

Übersicht
*********

Chaos V5.3 ist ein vollständig in C geschriebenes und mit DICE V2.07.54-3.0 compiliertes Programm. Es kann Turniere nach dem Schweizer System (see Schweizer System) ebenso wie Rundenturniere (see Rundenturnier) verwalten und auf Wunsch anschließend die DWZ-Wertung ausführen. Dabei arbeitet es nach den im Turnierleiterhandbuch des Deutschen Schachbundes beschriebenen Algorithmen (see Algorithmen). Diese dürften in Details vom FIDE-Algorithmus abweichen, im großen und ganzen aber damit übereinstimmen. (Mir sind die FIDE-Algorithmen nicht bekannt.) Es ist damit gut für kleinere Turniere, etwa Vereinsturniere und aufgrund seiner Geschwindigkeit auch für Schnellturniere oder Blitzturniere geeignet, bei denen es vor allem auf Bedienungskomfort ankommt. Dank der bereits angesprochenen und später genauer beschriebenen Algorithmen sollte es dabei die jeweiligen Auslosungen zur allgemeinen Zufriedenheit durchführen.

Bei ungerader Teilnehmerzahl vergibt das Programm ein Freilos (Schweizer System) bzw. gibt einem Teilnehmer pro Runde spielfrei (Rundenturnier). Im Schweizer System ist es möglich, nach der 1. Runde noch Teilnehmer aufzunehmen. Ausgeschiedene Teilnehmer kann man markieren, die Auslosung wird dann daran angepaßt. See Teilnehmer.

Das Programm macht (fast) alle Ausgaben wahlweise auf Bildschirm oder Drucker, kann Tabellen nach Punkten, Buchholzpunkten (sogar nach verfeinerten Buchholzpunkten) oder nach der Sonneborn-Berger-Wertung sortieren (see Voreinstellungen), kann Fortschritts- und Kreuztabellen ausgeben (letztere allerdings nur als TeX-Quelltexte) und das alles mit einer Standard-Intuition-Oberfläche, die eigentlich sogar ohne Erläuterungen bedienbar sein sollte. (Kein Grund, diese Dokumentation und speziell den Abschnitt über Vorsichtsmaßnahmen nicht weiterzulesen! See Vorsichtsmaßnahmen.)

Die Anzahl der Teilnehmer ist nur durch die Speicherkapazität begrenzt. (Ca. 3 KByte pro Teilnehmer sollten schon da sein)

Installation des Programms
**************************

Chaos ist unter Kickstart 3.0 entwickelt und sollte mit Kickstart 2.0 oder höher laufen. Chaos kann mit der locale.library arbeiten, aber auch unter 2.0 ist die Verwendung verschiedener Sprachen möglich. Wer immer noch mit Kickstart 1.2 oder 1.3 arbeitet, ist meiner Meinung nach selber schuld. Für den Programmierer ebenso wie für den Anwender ist 2.x eine wunderbare Sache.

Was Chaos unbedingt benötigt, ist die mui.library, Version 2.0 oder neuer. Diese ist Shareware und kann frei kopiert werden. MUI (Magic User Interface) findet sich z.B. auf dem Aminet (Directory /pub/aminet/dev/gui) oder auf den Fish-CD's. Es widerspricht eigentlich meinen Intentionen, Software zu verwenden, für die bezahlt werden muß, aber die Vorteile von MUI sind meines Erachtens so groß, daß ich mich trotzdem dazu entschlossen habe. Außerdem ist die Registrierungsgebühr von MUI mit 20DM recht niedrig und prinzipiell kann man das Programm auch als nicht registrierter MUI-Anwender benutzen. Allerdings möchte ich alle Chaos-Benutzer ausdrücklich dazu auffordern, sich für MUI auch tatsächlich registrieren zu lassen.

Eine Festplatte ist nicht unbedingt nötig, aber (wie üblich) sinnvoll. Allerdings dürfte es schwierig sein, Chaos und MUI auf einer Diskette unterzubringen.

Die Installation ist simpel: Die Datei chaos.lha muß ausgepackt werden. Dies ist an dieser Stelle vermutlich bereits geschehen, sonst könnte dieser Text wohl nicht gelesen werden. ;-)  Falls nicht, so kann das mit dem Befehl

lha x Chaos5.3bin.lha

erledigt werden. (Das Programm LhA findet man auf z.B. Fish-Disketten.) Ähnlich kann man auf Wunsch auch die Quelltexte auspacken, die sich in der Datei Chaos5.3src.lha befinden.

Damit ist die Installation eigentlich auch schon beendet! Wenn Sie allerdings kein eigenes Verzeichnis für das Programm haben wollen, dann müssen Sie die benötigten Dateien evtl. über mehrere verschiedene Directories verteilen. Zur Installation steht Ihnen dann das Install-Skript zur Verfügung, das Sie einfach durch Anklicken des entsprechenden Icons aufrufen. Dieses kopiert im Novice-Mode einfach das Programm nach c:, das Vorgabeicon nach s: und die gewünschten Catalogs nach Locale:Catalogs (falls vorhanden). Beachten Sie bitte, daß Chaos auch unter Workbench 2.0 mit Catalogs arbeiten kann und Sie deshalb auch hier ein solches Verzeichnis erzeugen sollten. Das Skript benötigt zur Ausführung das Programm Installer, das ab Workbench 2.1 Teil des Betriebssystem ist. Es gibt auch eine frei kopierbare Version dieses Programms, die Sie ebenfalls auf den Fish-Disketten und auf dem Aminet im Directory /pub/aminet/util/misc finden sollten.

Wer Installer nicht besitzt, muß die Installation von Hand vornehmen. Das Programm benötigt evtl. (bei Benutzung der locale.library) das Verzeichnis Catalogs und die darin befindlichen Dateien. Damit diese gefunden werden, muß entweder das Verzeichnis Catalogs im gleichen Verzeichnis wie das Programm stehen oder nach locale: kopiert werden. Letzteres geschieht mit dem Befehl

copy Catalogs locale:Catalogs all

Ohne die locale.library steht leider nur die englischsprachige Version zur Verfügung. Derzeit gibt es nur ein deutsches Catalogfile. Wer andere Sprachen verwenden möchte, kann die Datei src/NewCatalog.ct als Vorlage benutzen. Neue Catalogfiles bitte ich an mich zu senden.

Analog dazu muß das Verzeichnis s mit der Datei Chaos_project.info vorhanden oder nach s: kopiert werden. Hier lautet der Kopierbefehl

copy s s: all

Chaos_project.info enthält das Project-Icon, mit dem die abgespeicherten Turniere auf Wunsch versehen werden und kann z.B. mit IconEd verändert werden. See Programmstart.

Schließlich finden Sie im Directory Rexx einige Beispielprogramme, die die Benutzung von Chaos von einem ARexx-Programm aus demonstrieren. Evtl. sollten Sie auch diese kopieren.

Der Aufruf des Programms erfolgt vom CLI oder von der Workbench durch Anklicken des Icons. Wesentlich ist dabei, daß Chaos mit seinen rekursiv arbeitenden Algorithmen genügend Stack hat! Pro Teilnehmer sollten etwa 50 Bytes Stack gerechnet werden plus 4000 für das Betriebssystem und andere Dinge. Mit einem Stack von 20000 Bytes sollte man also bequem und ohne Befürchtungen auskommen. (Dieser Wert ist die Voreinstellung im Chaos-Icon.) Die Größe des Stack wird mit dem Workbench-Menüpunkt Info (bzw. Informationen bei der deutschsprachigen Workbench) oder im CLI mit dem Stack-Kommando vor dem Aufruf des Programms eingestellt. Letzteres geschieht mit folgendem Befehl (entweder in der Datei shell-startup oder von Hand vor jedem Aufruf des Programms):

stack 20000

Anzumerken ist schließlich noch, daß Chaos einige besondere Zeichen bei der Bildschirmausgabe verwendet. Bitte achten Sie deshalb darauf, daß auf der Workbench ein Font eingestellt ist, der alle 256 Amiga-Zeichen enthält!

Turnierorganisation
*******************

Dieses Kapitel enthält mehr allgemeine Hinweise und ist für die Arbeit mit dem Programm nicht unbedingt nötig. Speziell den Abschnitt über Vorsichtsmaßnahmen sollten Sie sich aber unbedingt ansehen.

Vorbereitungen
==============

Zu den Vorbereitungen kommen (neben den ohnehin anfallenden Arbeiten wie Beschaffung des Raumes, der Figuren usw.) beim Einsatz eines Computers einige zusätzliche Probleme und Fragen, die Sie vorher klären sollten:

  * Wieviele Personen werden an dem Turnier teilnehmen? Falls das mehr als ca. 20 sind, dann müssen Sie damit rechnen, daß beim Turnierbeginn plötzlich ein Haufen von Leuten gleichzeitig angemeldet werden müssen. Da immer nur ein Mitarbeiter Daten in den Computer eingeben kann, führt das leicht zu einer überflüssigen und unerwünschten Verzögerung. Sie sollten deshalb bestrebt sein, durch Voranmeldungen schon vorher alle nötigen Daten bereitzustellen und einzugeben.

  * Betrachten Sie den Raum, in dem das Turnier stattfindet: Gibt es einen Nebenraum für den Computer? Falls nicht: Können Sie einen Laser- oder Tintenstrahldrucker organisieren? (Nadeldrucker sind entsetzlich laut!) Gibt es genügend Steckdosen?

  * Wenn Sie nicht ihren eigenen Drucker benutzen, müssen Sie daran denken, die nötigen Druckertreiber zu installieren. Vor dem Start des Programms (präziser: Vor dem ersten Ausdruck :-) müssen Sie außerdem die Preferences auf diesen Drucker einstellen.

  * Sorgen Sie dafür, daß der Computer einen Platz hat, wo keine unberechtigten Personen hinkommen. (Ich habe diesbezüglich sehr schlechte Erfahrungen mit kleinen Kindern.)

Vorsichtsmaßnahmen
==================

``Was nicht sein kann, das nicht sein darf!'' Wenn Sie genauso denken, dann lassen Sie diesen Abschnitt ruhig aus. Falls nicht, dann überlegen Sie einmal: Was passiert, wenn mitten im Turnier mein Computer ausfällt? Wenn Sie entsprechend vorgesorgt haben, dann kann Sie das eigentlich kalt lassen.

Ihr oberstes Prinzip sollte sein, stets mindestens eine Kopie des Programms sowie aller wichtigen Daten parat zu haben. Da Auslosungen (wie schon der Name sagt) wenigstens ein kleines bißchen durch den Zufall bestimmt werden, sollten Sie nach jeder Auslosung diese Kopie auf den neuesten Stand bringen. Nach meiner Erfahrung ist es außerdem sinnvoll, nach jeder Auslosung eine andere Datei anzulegen. (Beispielsweise könnte nach einer Auslosung und nach dem Abspeichern, aber noch vor der Austragung der Spiele entdeckt werden, daß ein Ergebnis falsch eingegeben wurde. Dann haben Sie durch Laden der alten Kopie die Möglichkeit, die Auslosung mit dem korrigierten Ergebnis zu wiederholen. See Speichern als.) Ferner wäre es für den Fall aller Fälle sinnvoll, einen zweiten Amiga-Besitzer im gleichen Ort zu kennen...

Was außerdem passieren könnte, ist ein Fehler des Programms. :-( (Versuchen Sie das als Vorzug zu sehen, daß der Programmautor daran denkt und nicht als drohendes Anzeichen. :-) In diesem Fall müssen Sie das Turnier von Hand weiterführen. Das Programm gibt Ihnen in diesem Fall die Möglichkeit, mit dem entsprechenden Menüpunkt Spielerkarten alle dazu nötigen Daten auszudrucken. (Die Ausgabe erfolgt derzeit in eine TeX-Datei. Die Ausgabe von TeX ist bekanntlich recht langsam. Ich wäre dankbar für Anregungen, wie man dies anders gestalten kann.) See Spielerkarten.

Programmstart
*************

Das Programm wird wahlweise vom CLI oder von der Workbench durch Anklicken des Programmicons oder eines Turniericons gestartet. Im CLI sieht die Syntax des Aufrufs folgendermaßen aus:

Chaos FILE,MAKEICONS/S,DEFICON/K,LANGUAGE/K,NOWINDOW/S

Dies ist die Bedeutung der Argumente:

FILE
     ist der Name einer zu ladenden Turnierdatei. Wird kein Dateiname angegeben, so wird startet das Programm mit einem neuen Turnier ohne Namen. In diesem Fall sollten Sie damit beginnen, den Menüpunkt Neues Turnier aufzurufen.

MAKEICONS
     veranlasst das Programm, erzeugte Turnierdateien mit Workbench-Icons zu versehen. Wenn das Programm vom CLI gestartet wird, so werden normalerweise keine Icons erzeugt.

DEFICON
     ist der Name eines Icons, das fuer die Turnierdateien kopiert wird. Vorgabe ist s/Chaos_Project. Bitte beachten Sie, daß die icon.library automatisch die Endung .info anhängt! Wird das angegebene Icon nicht gefunden, so wird außerdem versucht, s:Chaos_Project zu laden. Wird auch dies nicht gefunden, so wird das übliche Project-Icon von der Kickstart übernommen.

MENUFILE
     ist der Name einer Datei, die zu lesen ist, um eigene Menüpunkte in das Menü Spezielles einzubauen. (Vorgabe ist s/Chaos_Menu.) See Eigene Menüpunkte.

LANGUAGE
     ist der Name der zu verwendenden Sprache. Diese Option ist ausschließlich für Benutzer der Workbench 2.0 gedacht. Benutzen Sie sie nicht unter 2.1 oder höher! Vorgegeben ist Englisch. Natürlich müssen bei Verwendung einer anderen Sprache auch die entsprechenden Catalog-Dateien installiert sein.

NOWINDOW
     gibt an, daß kein Fenster eröffnet werden soll. Dies ist nur dann sinnvoll, wenn das Programm von ARexx aus gesteuert wird.

WINNERPOINTS
DRAWPOINTS
     gibt die Zahl der Punkte an, die ein Spieler für einen Sieg bzw. ein Remis erhät. Beachten Sie, daß diese Zahl durch 2 dividiert wird. Siehe auch Turniereingabe.

Die Workbench-Tooltypen entsprechen den CLI-Argumenten. Sie können sowohl im Project-Icon der Turnierdatei als auch im Tool-Icon des Programms gesetzt werden. (Tooltypen des Projekticons haben Vorrang.) Allerdings werden beim Start von der Workbench normalerweise Icons erzeugt. Deshalb entfällt der Tooltyp MAKEICONS und es gibt stattdessen einen Tooltyp NOICONS. Ferner entfällt hier der Tooltyp NOWINDOW. (Ich sehe keinen Sinn darin, das Programm von der Workbench aufzurufen, ohne ein Fenster zu eröffnen.)

Dateneingabe
************

Die Dateneingabe arbeitet mit den Standard-Intuition-Gadgets. Sie sollten also sofort damit zurechtkommen. Einige Prinzipien gelten aber generell:

  * Sie haben überall die Möglichkeit, ihre Aktionen wieder abzubrechen. Zu diesem Zweck sind alle Windows mit Close- und Cancel-Gadgets versehen. Ferner können Sie alle Fenster durch Drücken der Esc-Taste beenden.

  * Alle Eingabemasken haben ein Ok-Gadget und werden erst durch Anklicken dieses Gadgets beendet. Dem Anklicken des Ok-Gadgets entspricht das Drücken der Taste Ctrl-Return. Allerdings ist es möglich, daß Sie in diesem Fall zunächst ein Stringgadget deaktivieren müssen. Die beste Methode ist, im MUI-Preferences-Programm diese Taste für Gadget Off einzustellen. Dann kann man mit zweimaligem Ctrl-Return jedes Fenster beenden.

  * Bei Eingabemasken mit String-Gadgets ist zu Anfang eines dieser Gadgets aktiviert. Eingegebener Text erscheint in diesem Gadget. Durch die Return-Taste wird jeweils das nächste String-Gadget aktiviert.

  * MUI macht es möglich, völlig ohne Maus zu arbeiten. Bitte lesen Sie näheres in der MUI-Dokumentation. Es sei lediglich erwähnt, daß Sie mit Tab bzw. Shift-Tab das jeweils nächste bzw. letzte Gadget aktivieren, Listview-Gadgets mit den Cursortasten steuern und Buttons (z.B. das Ok-Gadget) mit der Return-Taste betätigen können. Außerdem können Sie in den MUI-Preferences auf Wunsch auch die Tastaturbelegung umstellen.

Das Turniereingabefenster
=========================

Das Turniereingabefenster erscheint bei der Wahl des Menüpunktes Neues Turnier. Siehe dazu Neues Turnier. Es enthält ein Stringgadget, in das der Turniername einzugeben ist. Dieser Name erscheint auf dem Hauptfenster und bei den auf den Drucker ausgegebenen Daten. Falls Sie mehrere Gruppen in einem Turnier haben, dann sollten Sie den Gruppennamen hier mit aufnehmen, z.B. ``1. Metzinger Weinbergturnier (A-Jugend)''

Unter dem Turniernamen kann man (wie mit den Argumenten WINNERPOINTS und DRAWPOINTS beim Programmstart die Zahl der Punkte eingeben, die ein Spieler für ein gewonnenes Spiel bzw. ein Remis erhält. Diese Zahlen werden durch 2 dividiert: Für die üblichen 1 bzw. 0.5 Punkte sind also 2 bzw. 1 einzugeben. (Dies ist auch die Vorgabe.) Möchte man stattdessen etwa einen Punkt für Remis und 3 Punkte für einen Sieg vergeben, so sind stattdessen 6 und 2 einzugeben. See Programmstart.

Das Teilnehmerauswahlfenster
============================

Das Teilnehmerauswahlfenster erscheint bei den Menüpunkten Teilnehmer ändern und Teilnehmer löschen. See Teilnehmer. Es präsentiert eine Liste aller Spieler, die mit den üblichen Gadgets auf- und abwärtsgescrollt werden kann. Sie können wahlweise einen einzigen Teilnehmer durch einfaches Anklicken oder wie in der Workbench die Icons können Sie auch mehrere Teilnehmer durch Anklicken mit gedrückter Shift-Taste aktivieren. Der Button Invertieren erlaubt es Ihnen, Ihre Auswal gerade umzudrehen: Alle aktivierten Teilnehmer werden deaktiviert und umgekehrt. Der links unten stehende Button (z.B. Modifizieren) beendet die Teilnehmerauswahl.

Das Teilnehmereingabefenster
============================

Das Teilnehmereingabefenster erscheint bei der Wahl der Menüpunkte Neuer Teilnehmer und Teilnehmer ändern. See Teilnehmer. Es besitzt folgende Gadgets:

Name
     Der Name der Teilnehmer wird zum Teil bei der Auslosung verwendet. Es ist deshalb nötig, daß die Teilnehmer alphabetisch korrekt sortiert sind. Dazu müssen alle Namen einheitlich eingegeben sein. Vorgeschlagen wird: Nachname, Komma, Leerzeichen, Vorname, also z.B. Wiedmann, Jochen. See Schweizer System.

     Jeder Teilnehmer muß einen eigenen Namen haben! Das Programm akzeptiert keine Teilnehmer mit leerem Namensfeld und keine doppelten Namen. Notfalls müssen Sie z.B. Schmid, Eugen (2) eingeben!

Straße
Wohnort
Telefonnummer
     Die Adressen der Teilnehmer werden im Normalfall nur bei Turnieren benötigt, die längere Zeit dauern. Dann sollten Sie diese aber bereithalten, schon allein um Kontakte der Teilnehmer untereinander zu ermöglichen.

Schachclub
     Den Schachclub eines Teilnehmers benötigt man im allgemeinen kaum. Es kann aber erwünscht sein, daß er z.B. auf der Teilnehmerliste auftaucht.

Geburtsdatum
     Das Geburtsdatum eines Teilnehmers wird nur für die DWZ-Wertung benötigt, da aber unbedingt. Derzeit muß es unbedingt in der Form dd.mm.yy oder dd.mm.yyyy eingegeben werden! (Ich hätte gerne die exzellente DOS-Funktion StrToDate verwendet. Diese hat aber einen kleinen Nachteil: Sie akzeptiert nur Daten vor dem 1.1.1978, d.h. nicht einmal meinen eigenen Geburtstag...)

     Wird ein Geburtsdatum eingegeben, so überprüft das Programm, ob dieses plausibel ist. Nicht plausible Daten oder Daten in unkorrektem Format werden nicht akzeptiert.

DWZ
     Die DWZ wird für die Auslosung der ersten Runde beim Schweizer System benötigt, falls diese nach FIDE-System ablaufen soll. (Bei Blitz- oder Schnellturnieren wird das nicht der Fall sein.) Selbstverständlich wird die DWZ auch für die DWZ-Wertung benötigt. In anderen Ländern können Sie für die Auslosung eine andere nationale Wertungszahl (z.B. USCF) eingeben, vorausgesetzt, diese ist ebenfalls absteigend sortiert (bessere Spieler haben höhere Zahlen). Natürlich sollten Sie keine verschiedenen Wertungen mixen, sondern im Zweifelsfall umrechnen.

     Bitte beachten Sie, daß die offizielle Form der DWZ etwa so aussieht, wie 1834-23, was eine DWZ von 1834 aus 23 gewerteten Turnieren bedeutet. Chaos akzeptiert beide Formen.

ELO
     Bei Teilnehmern mit ELO-Zahl wird diese zur Bestimmung der Rangliste verwendet. (Dies scheint mir so sinnvoll, aber könnte auch anders gehandhabt werden.) Wenn Sie eine andere Wertung als DWZ verwenden, dann sollten Sie ELO-Zahlen nur dann eingeben, wenn diese vergleichbar sind, d.h. Spieler mit gleicher DWZ bzw. ELO-Zahl etwa gleichstark sein dürften.

Zu allen diesen Stringgadgets siehe auch Dateneingabe.

Senioren
Junioren
Damen
A-Jugend
B-Jugend
C-Jugend
D-Jugend
E-Jugend
     Wenn Sonderwertungen ausgeführt werden sollen, aber alle Teilnehmer in einer Gruppe spielen (z.B. ein Sonderpreis für die beste Frau), dann kann man mit diesen Gadgets die entsprechenden SpielerInnen markieren. Dies hat auf das Turnier keinen Effekt. Es ist lediglich möglich, für die markierten Teilnehmer gesonderte Tabellen auszugeben. Siehe auch Ausgabe.

Setzen von Spielen im Schweizer System
======================================

Im Schweizer System kann es unter Umständen sinnvoll (oder zumindest wünschenswert) sein, bestimmte Paarungen zu erzwingen. Dazu erscheint dieses Fenster, bevor eine Runde nach Schweizer System gelost wird. Da das im Normalfall wohl nicht gewollt ist, kann das Fenster durch den Menüpunkt Spiele setzen unterdrückt werden. See Spiele setzen.

Im Fenster finden Sie auf der linken Seite eine Liste aller aktiven Spieler (d.h. der Spieler, die nicht ausgeschieden sind). Ein Spieler wird durch Doppelklick auf seinen Namen gesetzt und erscheint dann auf der rechten Seite in der Liste der Spiele. Ein Spiel wird also gesetzt, indem man die beiden Kontrahenten nacheinander anklickt. Dabei erlaubt das Programm natürlich keine Paarungen, die bereits stattgefunden haben. Falls eine Paarung gewählt wird, die aufgrund der Farbverteilung eigentlich verboten wäre, so wird dies nur nach Rückfrage erlaubt. Mit dem Delete-Button können Sie ein gesetztes Spiel wieder löschen.

Die Farbverteilung sollte normalerweise durch Chaos vorgenommen werden, um für spätere Runden die Auslosung möglichst zu erleichtern. Falls dies jedoch aus irgendwelchen Gründen doch anders erwünscht ist, so kann dies mit einem Cycle-Gadget unterhalb der Spielerliste eingestellt werden. In diesem Fall erhält der jeweils zuerst gesetzte Spieler Weiß. (Andernfalls ist die Reihenfolge beliebig.) Spiele mit festgesetzten Farben erkennt man daran, daß hinter den Namen der beiden Spieler das Kürzel (Fg) (Farben gesetzt) auftaucht.

Auch die Vergabe eines Freiloses ist möglich: Dazu wird als letzter Spieler der Spieler angeklickt, der das Freilos erhalten soll, d.h. es wird eine ungerade Zahl von Spielern gesetzt. Natürlich wird dies nur erlaubt, wenn die Zahl der aktiven Spieler ungerade ist und wenn der betreffende Spieler noch kein Freilos hatte.

Das Ergebniseingabefenster
==========================

Das Ergebniseingabefenster wird durch den Menüpunkt Ergebnisse eingeben aufgerufen (see Runde) und präsentiert Ihnen eine Liste von Spielen einer Runde. Diese Liste können Sie mit den üblichen Gadgets auf- und abwärtsscrollen. Stets ist ein Spiel aktiviert.  Dieses wird unter Kickstart 3.x durch invertierte Anzeige hervorgehoben, unter Kickstart 2.x erscheint es in einem Textgadget unter der Liste. Sie können durch Anklicken ein anderes Spiel aktivieren.

Unter der Liste finden Sie einige weitere Gadgets. Rechts (mit den Gadgets ausgetragen bzw. kampflos) können Sie durch Anklicken angeben, daß das Ergebnis kampflos entstand. Vorgabe ist stets, daß das Spiel ausgetragen wurde. Links (mit den Gadgets Weiß gewinnt, Remis, Schwarz gewinnt und Ergebnis fehlt) können Sie das Ergebnis angeben. Vorgabe ist natürlich, daß das Ergebnis fehlt. Außerdem können Sie die Ergebnisse auch mit der Tastatur eingeben: Die Tasten w (Weiß gewinnt), r (Remis), s (Schwarz gewinnt), f (Ergebnis fehlt), u (Spiel ausgetragen) und k (kampflos) entsprechen den jeweiligen Gadgets.

Wird ein Ergebnis eingegeben, so wird automatisch das jeweilige nächste Spiel aktiviert. (Unter älteren MUI-Versionen kann dies evtl. zu Problemen führen.) Dies erlaubt eine besonders angenehme Eingabe.

Menüs
*****

Das Programm hat ein Hauptfenster, in dem verschiedene Angaben über das Turnier (Name, Dateiname, Teilnehmer- und Rundenzahl sowie Turniermodus) ausgegeben werden. Dieses Hauptfenster ist immer dann mit einem Menü versehen, wenn gerade kein Eingabe- oder Ausgabefenster erscheint. Die Menüs sind:

Das Turnier-Menü
================

Das Turniermenü entspricht dem ``Project''-Menü, das die meisten Programme mit GUI haben. Die einzelnen Punkte des Menüs sind:

Neues Turnier
     Dieser Menüpunkt läßt das Turniereingabefenster erscheinen. Es wird der Name des Turniers eingegeben sowie durch Anklicken eines Cycle-Gadgets festgelegt, ob es sich um ein Turnier nach Schweizer System oder um ein Rundenturnier handelt. Falls beim alten Turnier Daten verändert wurden, so wird zunächst gefragt, ob dieses abgespeichert werden soll und gegebenenfalls automatisch der Menüpunkt Speichern Als aufgerufen.

Turnier laden
     Mit diesem Menüpunkt kann man ein anderes Turnier aufrufen von der Diskette oder Festplatte abrufen. Auch hier kommt gegebenenfalls die Abfrage, ob zunächst das alte abgespeichert werden soll. Zur Auswahl des Turniers erscheint der übliche Filerequester der asl.library.

Turnier speichern
     Hier kann man das aktuelle Turnier abspeichern. Voraussetzung ist, daß der Name der Turnierdatei bekannt ist. Falls nicht, so wird automatisch der Menüpunkt

Turnier speichern als
     aufgerufen, der zunächst mit Hilfe des asl-Requesters die Auswahl einer Datei erlaubt und dann ebenfalls die Turnierdaten abspeichert. Ich rate dringend dazu, nach jeder Auslosung und in einer verschiedenen Datei abzuspeichern. (see Vorsichtsmaßnahmen) Das Programm unterstützt dies dadurch, daß automatisch ein Name wie z.B. chaos.5.cdat vorgegeben wird, wobei 5 die Anzahl der Runden ist.

Informationen
     Dieser Menüpunkt gibt einiges über das Programm und mich (den Autor) aus. Ich pflege selbst bei jedem Programm wenigstens einmal den Menüpunkt About auszuwählen in der Hoffnung, etwas interessantes zu erfahren. Leider werde ich fast immer enttäuscht. Jetzt will ich endlich auch mal selber entäuschen ;-)

Programmende
     Mit diesem Menüpunkt kann man das Programm verlassen. Wie bei Neues Turnier und Turnier laden geht auch dies nicht versehentlich, sondern es erscheint bei Bedarf die Abfrage, ob man zunächst nicht abspeichern möchte.

Das Teilnehmer-Menü
===================

Die Menüpunkte dieses Menüs verwenden das Teilnehmereingabefenster sowie das Teilnehmerauswahlfenster. Diese wurden schon ausführlich beschrieben. See Teilnehmereingabe. Dies sind die Menüpunkte:

Neuer Teilnehmer
     Mit diesem Menüpunkt können Sie vor dem Beginn des Turniers die Teilnehmer eingeben. Beim Schweizer System ist es auch noch nach Auslosung der ersten Runde möglich, neue Teilnehmer einzugeben. Das ist natürlich keine offizielle und korrekte Möglichkeit, aber mancher Veranstalter wird darüber froh sein. Die neuen Spieler erhalten dann ein Freilos (bei bisher gerader Teilnehmerzahl) bzw. müssen gegen den Spieler spielen, der bisher ein Freilos hatte. In der Rangliste werden die Spieler ganz unten eingeordnet. Bitte beachten Sie, daß Sie durch die Reihenfolge der Eingabe festlegen, wer gegen wen spielt! Es empfiehlt sich also, bei der Eingabe nach den unten beschriebenen Prinzipien vorzugehen. See Spätzünder.

Teilnehmer importieren (Menüpunkt)
     Hat man ein Turnier durchgeführt und bei einem neuen Turnier nehmen wenigstens teilweise dieselben Spieler teil, dann ist es natürlich wünschenswert, die Spielerdaten nicht neu eingeben zu müssen, sondern direkt übernehmen zu können. Das erlaubt dieser Menüpunkt: Beim Aufruf können Sie mit Hilfe des Asl-Filerequesters eine vorhandene Turnierdatei aufrufen und dann mit dem Teilnehmerauswahlfenster Spieler von dort übernehmen.

     Dies macht es möglich, eine regelrechte Spielerdatenbank zu führen: Erzeugen Sie einfach ein neues Turnier, dem Sie z.B. den Namen Ihres Vereins geben und geben Sie dort die Spieler ein. See UpdateRatings.

Teilnehmer ändern
     Dieser Menüpunkt erlaubt es, Spielerdaten zu ändern. Dies geht jederzeit. Nach der Auslosung der ersten Runde erscheint hier allerdings zur Vorsicht ein Requester, der Sie fragt, ob Sie wirklich Spielerdaten ändern wollen.

Teilnehmer löschen
     können Sie mit diesem Menüpunkt. Dies geht allerdings nur vor der Auslosung. Beim Schweizer System können Sie den Menüpunkt auch später noch aufrufen. Hier werden Spieler damit lediglich als ausgeschieden markiert, d.h. sie werden zu einem Freilos (bei bisher gerader Teilnehmerzahl) bzw. dienen dazu, ein Freilos zu eliminieren.

     In jedem Fall erscheint bei der Anwahl des Menüpunktes ein Requester, der fragt, ob Sie wirklich Teilnehmer löschen. Zusätzlich erscheint bei jedem ausgewählten Teilnehmer ein weiterer Requester, der fragt, ob Sie wirklich diesen Spieler löschen wollen. Beachten Sie bitte, daß kein Spieler gelöscht wird, wenn Sie irgendwo abbrechen.

Das Runde-Menü
==============

Mit dem Runde-Menü verwalten Sie das Turnier nach der Eingabe der Teilnehmer. Es besitzt folgende Menüpunkte:

Runde auslosen
     Dieser Menüpunkt enthält 3 Untermenüpunkte. Durch Auswahl eines dieser Untermenüpunkte wird das Turnier gestartet und die erste Auslosung im entsprechenden Modus, d.h. nach Schweizer System (see Schweizer System) oder als Rundenturnier mit FIDE-System (see FIDE-System) bzw. Rutschsystem (see Rutschsystem) durchgeführt. Bitte beachten Sie, daß es nicht möglich ist, den Modus später zu ändern!

     Beim Rundenturnier wird dieser Menüpunkt anschließend nicht mehr benötigt. Beim Schweizer System dagegen kann der Menüpunkt später erneut aufgerufen werden, um die jeweils nächste Runde auszulosen. Dies erlaubt das Programm allerdings erst dann, wenn alle Ergebnisse aus der Vorrunde eingegeben sind. Falls noch Spiele fehlen, müssen diese zunächst als Remis eingegeben werden und dann später korrigiert werden. Wenn Sie die Spiele einer Runde öffentlich aushängen wollen, dann empfiehlt es sich deshalb, erst die Ausgabe zu machen, dann die fehlenden Spiele als Remis einzutragen und dann erst die Auslosung zu veranlassen.

     Wurde eine Auslosung erfolgreich durchgeführt, so ruft das Programm automatisch den Menüpunkt Speichern als auf. Ich empfehle dringend, dies auszunutzen und tatsächlich nach jeder Runde und in verschiedenen Dateien abzuspeichern! See Vorsichtsmaßnahmen.

Ergebnisse eingeben
     Mit diesem Menüpunkt können Sie die Ergebnisse einer Runde eingeben. Zur Auswahl der Runde erscheint ein Requester, in dem Sie die Rundennummer festsetzen können. Siehe auch Ergebniseingabe.

Das Ausgabe-Menü
================

Alle Ausgaben können wahlweise auf den Bildschirm oder auf den Drucker (LQ oder Draft) oder in eine Datei erfolgen. Diese Auswahl erfolgt im Voreinstellungen-Menü. See Ausgabe auf.

Haben Sie den Bildschirm als Ausgabemedium gewählt, so erscheint ein eigenes Fenster mit dem auszugebenden Text. Diesen können Sie bei Bedarf mit den üblichen Gadgets auf- und abwärtsscrollen. Beim Drucker ist zu beachten, daß die Preferences richtig gesetzt sein müssen. Siehe auch Vorbereitungen.

Ausgegeben werden können (mit den entsprechenden Menüpunkten):

Teilnehmerliste
     Sie haben hier die Wahl zwischen einer ausführlichen Teilnehmerliste mit allen Spielerdaten (Untermenüpunkt lang) oder nur mit Nummer, Namen, Schachclub, DWZ- und ELO-Zahl (Untermenüpunkt kurz).

Tabelle
     Bei der Tabelle haben Sie die Wahl zwischen verschiedenen Wertungen, nach denen die Tabelle sortiert wird. Siehe dazu Voreinstellungen. Ferner können Sie neben der allgemeinen Tabelle noch die Extra-Tabelle der Senioren, der Junioren usw. ausgeben lassen. Diese Auswahl erfolgt über die Untermenüpunkte.

Runde
     Die Liste der Spiele einer Runde; die Auswahl der Runde erfolgt mittels eines Requesters wie bei der Ergebniseingabe. See Ergebnisse eingeben.

Rangliste
     Die Rangliste der letzten Auslosung. Diese Rangliste ist nur dann nötig, falls Sie die interne Auslosung nachvollziehen wollen. Wie das Programm vorgeht, ist im Abschnitt Algorithmen beschrieben. Da die Rangliste nur beim Schweizer System verwendet wird, ist ihre Ausgabe auch nur bei diesen Turnieren erlaubt. See Schweizer System.

Fortschrittstabelle
     Die Fortschrittstabelle enthält eine Liste aller Spieler, ihrer Spiele und Ergebnisse. Da sie nur beim Schweizer System sinnvoll ist, ist sie auch nur dort erlaubt.

Kreuztabelle
     Beim Rundenturnier ist dagegen die Kreuztabelle sinnvoll, die wiederum beim Schweizer System relativ nutzlos ist. Deshalb ist ihre Ausgabe nur beim Rundenturnier erlaubt. Es ist hier Ausgabe als TeX-Quelltext möglich und meines Erachtens auch sinnvoll. Deshalb gibt es hier die Untermenüpunkte Ascii für normale Ausgabe und TeX. Letzteres erfolgt stets auf eine Datei, d.h. es erscheint der asl-Filerequester, mit dem der Name einer TeX-Quelltext-Datei bestimmt wird. Diese muß anschließend von Hand mit TeX-bearbeitet und ausgedruckt werden.

Spielerkarten
     Die Ausgabe der Spielerkarten funktioniert genauso wie die Ausgabe der Kreuztabelle, d.h. es gibt ebenfalls die Untermenüpunkte Ascii und TeX.

DWZ-Wertung
     Die Ausgabe der DWZ-Wertung ist in einem eigenen Kapitel ausgiebig beschrieben. See DWZ-Wertung.

Das Voreinstellungen-Menü
=========================

Das Voreinstellungen-Menü umfaßt nur drei Menüpunkte. Bitte beachten Sie, daß sich diese unterschiedlich verhalten, was die Dauer der Einstellung angeht.

Tabellenwertung (Menüpunkt)
     Mit diesem Menüpunkt kann eingestellt werden, wonach die Tabellen sortiert werden. Dabei gibt es folgende Möglichkeiten:

      1. Mit der einfachen Wertung wird die Tabelle nur nach den Punkten der Teilnehmer sortiert.

      2. Bei der Buchholz-Wertung wird die Tabelle nach Punkten und Buchholz-Punkten sortiert. Die Buchholz-Punkte eines Spielers sind die addierten Punktzahlen seiner Gegner.

      3. Bei der verfeinerten Buchholz-Wertung wird die Tabelle nach Punkten, Buchholz-Punkten und verfeinerten Buchholz-Punkten sortiert. Die verfeinerten eines Spielers Buchholz-Punkte sind die addierten Buchholz-Punkte seiner Gegner.

      4. Bei der Sonneborn-Berger-Wertung wird die Tabelle nach Punkten und Sonneborn-Berger-Punkten sortiert. Die Sonneborn-Berger-Punkte eines Spielers sind die mit einer vom jeweiligen Ergebnis abhängigen Konstanten multiplizierten seiner Gegner: Hat der Spieler das Spiel verloren, so werden die Punkte des Gegners mit 0, bei Remis mit 0.5 und bei Gewinn mit 1 multipliziert.

     Die Einstellung der Tabellenwertung wird mit den anderen Turnierdaten abgespeichert. Voreingestellt ist stets die einfache Wertung.

Ausgabe auf
     Mit diesem Menüpunkt kann das Ausgabemedium (Bildschirm, Drucker ohne LQ, Drucker mit LQ oder Datei) eingestellt werden. Beim Programmstart ist hier stets der Bildschirm voreingestellt. Ist Datei eingestellt und es wird ein Menüpunkt aus dem Ausgabemenü gewählt, so erscheint der übliche Filerequester, der die Auswahl eines Dateinamens erlaubt.

Spiele setzen
     Ist diese Option gesetzt (was sie beim Programmstart nicht ist), dann erscheint beim Anwählen des Menüpunktes Runde auslosen das Spieleingabefenster, das das Setzen von Spielen erlaubt. See Spieleingabe.

Icons erzeugen
     Mit diesem Menüpunkt können Sie das Programm dazu bewegen, Icons zu erzeugen oder dies zu unterlassen. Siehe auch Programmstart.

Das Spezielles-Menü
===================

Dieses Menü enthält ausschließlich von Ihnen selbst definierte Menüpunkte und ist nur dann vorhanden, wenn Sie diese in einer dafür bestimmten Datei angeben. See Eigene Menüpunkte.

Die DWZ-Wertung
***************

Die DWZ-Wertung umfaßt alle Spieler, die gegen mindestens einen Spieler mit vorhandener DWZ gespielt haben. Das Vorgehen entspricht dem in: Peter Zöfel, Karl-Heinz Glenz, Das ELO-System.

Zur Berechnung der DWZ wird das Alter und für eine offizielle DWZ-Meldung das Geburtsdatum des Spielers benötigt. Falls dieses bei einem Spieler fehlt, erscheint deshalb ein Requester, der folgende Auswahl anbietet:

 1. Eines der Gadgets Bis 20, 21-25, Ab 26 veranlaßt das Programm anzunehmen, der Spieler gehöre zur entsprechenden Altersstufe. Die DWZ wird ganz normal ausgewertet, allerdings fehlt natürlich im Ausdruck das Geburtsdatum, das ein Teil der DWZ-Meldung ist.

 2. Das Gadget Ändern erlaubt es, die Daten des betreffenden Teilnehmers zu ändern und dann mit der DWZ-Wertung fortzufahren.

 3. Das Gadget Auslassen veranlaßt das Programm den betreffenden Teilnehmer bei der Auswertung auszulassen.

 4. Mit dem Gadget Abbruch kann man die DWZ-Wertung abbrechen.

Dies ist die Bedeutung der verschiedenen Werte:

Ro
     ist die alte DWZ. Sie besteht normalerweise aus zwei Zahlen, z.B. 1834-23. Dies bedeutet, daß der Teilnehmer bisher eine DWZ von 1834 hatte, die aus 23 Turnieren berechnet wurde.

W
     ist die Zahl der Punkte, die der Teilnehmer in gewerteten Spielen erzielt hat. Gewertet werden alle Spiele gegen Teilnehmer mit DWZ, die nicht kampflos ausgetragen wurde.

n
     ist die Anzahl der gewerteten Spiele.

We
     ist der Erwartungswert, der vom Teilnehmer erwartet wird, um die alte DWZ zu halten.

RH
     ist die sogenannte Turnier-H-Zahl, die ungefähr beschreibt, wie gut der Teilnehmer in diesem Turnier abgeschnitten hat.

Rn
     ist schließlich die neue DWZ. Sie hat die gleiche Darstellung wie Ro. Bei Spielern, die bislang keine DWZ haben und für die weniger als 9 Spiele gewertet werden, wird eine vorläufige DWZ ausgegeben, z.B. 1457-(5). Diese kann bei zukünftigen Turnieren verwendet werden, um dort auf die Zahl von 9 Spielen zu kommen und dann endgültig eine DWZ zu erlangen.

Der ARexx-Port: Chaos als Batchprogramm
***************************************

Unter dem Portnamen CHAOS.1 kann man das Programm mit Hilfe von ARexx auch von anderen Programmen aus steuern. Mehr noch: Die Benutzeroberfläche von Chaos ist eigentlich gar nicht mehr nötig, deshalb auch die NOWINDOW-Option. See Programmstart.

Mögliche ARexx-Kommandos
========================

Die ARexx-Befehle entsprechen weitgehend verschiedenen Menüpunkten, ihr Sinn sollte deswegen unmittelbar klar sein. Anzumerken ist, daß die ARexx-Kommandos natürlich nur dann erlaubt sind, wenn dies auch für die entsprechenden Menüpunkte gilt. Sie können also nicht in einem Rundenturnier die Tabelle nach Buchholz sortieren oder die Auslosung einer Runde veranlassen, wenn der Benutzer gerade Spiele eingibt.

Dies sind die Befehle:

 -- NewTournament: NAME/A, FORCE/S
     Erzeugt ein neues Turnier mit dem angegebenen Namen. Falls das aktuelle Turnier nicht abgespeichert wurde, wird der Benutzer um Zustimmung gefragt. Dies kann mit dem Schlüsselwort FORCE unterdrückt werden. See Neues Turnier.

 -- LoadTournament: FILE/A, FORCE/S
     Lädt das angegebene Turnier. Auch hier wird evtl. der Benutzer um Zustimmung gefragt, falls FORCE nicht angegeben ist. See Turnier laden.

 -- SaveTournament: FILE/A, ICON/S
     Speichert das aktuelle Turnier in der angegebenen Datei. Wird ICON angegeben, so erhält die Datei zusätzlich ein Project-Icon. See Installation. See Turnier speichern.

 -- AddPlayer: NAME/A, STREET/K, VILLAGE/K, CHESSCLUB/K, BIRTHDAY/K, PHONE/K, RATING/K, ELO/K, FLAGS/K, NOUSER/S
     Gibt die Daten eines neuen Teilnehmers an. Der Name ist verbindlich. Die Flags sind ein String, der eine Kombination der Buchstaben s (Senior), j (Junior), w (Dame) und a-e (A-Junior bis E-Junior) enthält. RATING ist die DWZ. See Teilnehmereingabe. See Neuer Teilnehmer. Die Option NOUSER unterdrückt evtl. Fehlermeldungen an den Benutzer.

 -- ModifyPlayer: PLAYER/A, NAME/K, STREET/K, VILLAGE/K, CHESSCLUB/K, BIRTHDAY/K, PHONE/K, RATING/K, ELO/K, FLAGS/K, NOUSER/S
     Modifiziert die Daten des Teilnehmers mit Namen PLAYER. Nur die angegebenen Felder werden modifiziert, d.h. z.B.

     ModifyPlayer "Widmann, Jochen" NAME "Wiedmann, Jochen"

     ändert nur den Namen. See Teilnehmer ändern. Auch hier kann man mit NOUSER Fehlermeldungen an den Benutzer verbieten.

 -- DeletePlayer: PLAYER/A, FORCE/S
     löscht den angegebenen Teilnehmer, bzw. markiert ihn als ausgeschieden. Ohne das Schlüsselwort FORCE wird der Benutzer um Zustimmung gefragt. See Teilnehmer löschen.

 -- SetPlayer: PLAYER/A, INIT/S, FORCE/S, SETCOLORS/S
     Setzt den angegebenen Spieler. Sollen etwa die Spieler 3 gegen 5 und 2 gegen 4 gesetzt werden und Spieler 17 ein Freilos erhalten, so ist das Kommando SetPlayer nacheinander für die Spieler 3, 5, 2, 4 und 17 und anschließend das Kommando DoPairings auszuführen. Die Vorgehensweise entspricht also der interaktiven. See Spieleingabe.

     Sollen die gesetzten Spiele wieder gelöscht werden, so ist das Schlüsselwort INIT anzugeben. (Natürlich funktioniert das nur vor der Ausführung von DoPairings möglich.) Es kann gleichzeitig der erste neu zu setzende Spieler angegeben werden oder auch nicht.

     Wie im interaktiven Modus lehnt es das Programm ab, Spieler ein zweites Mal gegeneinander zu setzen oder einem Spieler ein Freilos zu geben, der bereits eines hatte. Sollen zwei Spieler gegeneinander gesetzt werden, bei denen das aufgrund der Farbverteilung eigentlich nicht erlaubt wäre, so fragt das Programm nach der Zustimmung des Benutzers, außer das Schlüsselwort FORCE wurde angegeben. Die Farbverteilung wird normalerweise durch Chaos vorgenommen, dies kann aber durch das Schlüsselwort SETCOLORS geändert werden. SETCOLORS muß beim Setzen des zweiten, die schwarzen Steine erhaltenden Spielers angegeben werden! Beim ersten Spieler wird es ignoriert. See Runde auslosen.

 -- DoPairings: SWISSPAIRING/S, ROUNDROBIN/S, ROUNDROBINSHIFT/S, NOUSER/S
     Die Auslosung einer neuen Runde wird mit diesem Kommando veranlaßt. Für die erste Runde ist eines der Schlüsselworte SWISSPAIRING (Schweizer System), ROUNDROBIN (Rundenturnier, FIDE-System) oder ROUNDROBINSHIFT (Rundenturnier, Rutschsystem) anzugeben. Ohne das Schlüsselwort NOUSER wird das Spieleingabefenster eröffnet, um dem Benutzer das Setzen von Spielen zu erlauben.

     Wurde mit dem SetPlayer-Kommando einem Spieler ein Freilos zugeteilt, obwohl die Anzahl der aktiven Spieler gerade ist, so führt dies zu einer Fehlermeldung. See Runde auslosen.

 -- EnterResult: WHITE/A, BLACK/A, RESULT/A/N, NOTPLAYED/S
     Das Ergebnis (2 = Weiß gewinnt, 1 = Remis, 0 = Schwarz gewinnt, -1 = Ergebnis fehlt) des Spieles zwischen den angegebenen Teilnehmern wird gesetzt. Das Schlüsselwort NOTPLAYED ist anzugeben, wenn das Spiel kampflos entschieden wurde. Chaos bestimmt selbständig die Runde, in der das Spiel stattfand. See Ergebnisse eingeben.

Bei den folgenden Ausgabekommandos ist jeweils ein Dateiname anzugeben. Die auszugebenden Listen werden im Ascii-Format in die angegebene Datei geschrieben. Soll die Ausgabe auf den Drucker erfolgen, so ist es möglich, die Dateinamen prt: (Draft) oder prt:LQ (Letter-Quality) anzugeben.

 -- PlayerList: FILE/A, SHORT/S
     Gibt die Teilnehmerliste (SHORT für kurzes Format) auf die angegebene Datei aus. See Teilnehmerliste.

 -- InternalRatings: FILE/A
     Gibt die interne Rangliste aus. See Rangliste.

 -- Table: FILE/A, TABMODE/K/N, PLRMODE/K/N
     Gibt die aktuelle Tabelle aus. Mit TABMODE kann der Sortiermodus gesetzt werden (0 = einfach, 1 = Buchholz, 2 = verfeinerter Buchholz, 3 = Sonneborn-Berger; Vorgabe ist einfach) und mit PLRMODE kann bestimmt werden, welche Tabelle auszugeben ist. (0 = Alle, 1 = Senioren, 2 = Junioren, 3 = Damen, 4 bis 8 = A-Junioren bis E-Junioren; Vorgabe ist alle) see Tabelle.

 -- Round: FILE/A, NUMBER/N
     Gibt die angegebene Runde (Vorgabe ist die letzte Runde) aus. See Runde.

 -- TableOfProgress: FILE/A, TABMODE/K/N
     Gibt die Fortschrittstabelle aus. Mit TABMODE wird wie beim Table-Kommando der Sortiermodus der Tabelle angegeben. See Fortschrittstabelle.

 -- CrossTable: FILE/A, TEX/S
     Gibt die Kreuztabelle aus. Bei Angabe des TEX-Schlüsselwortes wird TeX-Quelltext erzeugt. (Es ist prinzipiell möglich, das TEX-Schlüsselwort mit dem Dateinamen prt: zu kombinieren. Allerdings wird dabei eben der Quelltext ausgegeben.) See Kreuztabelle.

 -- PlayerCards: FILE/A, TEX/S
     Gibt die Spielerkarten aus. Für das TEX-Schlüsselwort gilt das beim Kommando CrossTable gesagte. See Spielerkarten.

 -- DWZReport: FILE/A
     Gibt die DWZ-Wertung aus. Es ist nicht möglich, den Requester zu unterdrücken, der bei der DWZ-Wertung auftaucht, falls ein Spieler kein Geburtsdatum gesetzt hat. See DWZ-Wertung.

 -- Window: ON/S, OFF/S
     Schaltet das Hauptfenster ein bzw. aus. See Programmstart.

Eigene Menüpunkte
=================

Hat man sich erst einmal ein eigenes ARexx-Skript erstellt, so entsteht rasch der Wunsch, dieses auch vom Programm aus selbst zu verwenden. Dies ist möglich, indem man sich einen entsprechenden eigenen Menüpunkt definiert.

Zu diesem Zweck sucht Chaos beim Programmstart nach einer Datei namens s/Chaos_Menu. (Der Name kann mit der Option MENUFILE geändert werden. See Programmstart.) Ist diese nicht vorhanden, so wird außerdem nach s:Chaos_Menu gesucht.

Wird eine dieser Dateien gefunden, so erzeugt das Programm ein weiteres Menü namens Spezielles. In dieses Menü werden die in der Datei definierten Menüpunkte eingetragen. Die Definition ist einfach: Je zwei Zeilen entsprechen einem Menüpunkt. Die erste gibt den Titel an und die zweite einen Shell-Befehl, der beim Aufruf des Menüpunktes auszuführen ist. (Für ein Beispiel sehen Sie bitte die mitgelieferte Datei s/Chaos_Menu.)

Beachten Sie bitte unbedingt das Folgende:

 1. Chaos kann keine weiteren Befehle ausführen, bis Ihr Shell-Kommando beendet ist. Insbesondere ist es nicht möglich, Chaos über den ARexx-Port aufzurufen, während das Shell-Kommando läuft. Es kann deshalb nötig sein, Ihren Shell-Befehl mit Hilfe von Run aufzurufen!

 2. Bedingt durch Intuition-Eigenheiten sind maximal 31 Menüpunkte möglich.

Zwei ARexx-Skripte sind bereits vorhanden. Diese sollen als Beispiel dienen, können aber vielleicht auch so nützlich sein. Ihre Benutzung wird in den Skripten selbst erläutert.

PrintTable: Ausgabe von Tabellen in einem eigenen Format
--------------------------------------------------------

Eine Schweizer Benutzergruppe äußerte den Wunsch, ihre Tabellen in einem eigenen Format ausgeben zu können: Sie wollten die Punkte ganz rechts haben und außerdem auch den Schachclub des Teilnehmers integriert haben. Das macht dieses Skript. Es läßt zunächst Chaos die aktuelle Tabelle sowie eine Teilnehmerliste in Dateien ausgeben. Diese werden vom Skript gelesen und anschließend die veränderte Tabelle ausgeben.

Das Skript sollte eigentlich recht anschaulich sein. Ein Problem hat es allerdings: Alle diese Angaben passen bei langen Spieler- oder Vereinsnamen (jeweils bis 30 Zeichen sind möglich) nicht auf eine Zeile. Das Skript löst dies dadurch, daß unter Umständen Teile des Spielernamens und des Vereinsnamens abgeschnitten werden.

UpdateRatings: Export der neuen DWZ in eine Datenbank
-----------------------------------------------------

Wie schon erwähnt, erlaubt es der Menüpunkt Teilnehmer importieren, eine Art Spielerdatenbank zu führen. (see Teilnehmer) Nach Durchführung eines Turniers entsteht natürlich der Wunsch, die DWZ's der Spieler in der Datenbank auf den neuesten Stand zu bringen. Dies ist mit diesem Skript möglich. Dazu muß der Name der Datenbank angegeben werden, entweder indem das Skript mit UpdateRatings.rexx Datenbankname aufgerufen wird (dann muß der der entsprechende Name in die Datei s/Chaos_Menu eingetragen werden) oder indem das Skript ohne Datenbanknamen aufgerufen wird: Dann erlaubt der Asl-Filerequester die Auswahl einer Datei. (Dies setzt allerdings die Existenz des Programmes c:RequestFile voraus.)

Das Skript speichert dann zunächst das aktuelle Turnier als t:CurrentTournament ab und läßt dann die DWZ-Wertung in eine Datei ausgeben. Dann wird die angegebene Datei von Chaos geladen und das Skript verwendet nun das ARexx-Kommando ModifyPlr dazu, die neuen DWZ's aus der abgespeicherten Datei in die Datenbank einzutragen. Diese wird anschließend wieder gespeichert und das aktuelle Turnier geladen.

Algorithmen
***********

Die Algorithmen entsprechen den Abschnitten 2.1 (Rundenturnier) und 2.2 (Schweizer System) im Turnierleiterhandbuch des Deutschen Schachbundes.

Das Rundenturnier
=================

Beim Rundenturnier spielt jeder Spieler gegen jeden anderen. Um die Reihenfolge der Spieler zu bestimmen, erhält zunächst jeder Spieler eine zufällige Nummer. Ich spreche deshalb im Folgenden nur von den Spielern 1,2,...,n.

Falls n eine ungerade Zahl ist, so wird ein scheinbarer Spieler mit der höchsten Nummer angehängt. In jeder Runde hat dann der Teilnehmer spielfrei, der gegen diesen Spieler spielen müßte. Im Folgenden gehe ich deshalb davon aus, daß n eine gerade Zahl ist und k=n/2. (In der Mathematik sagt man o.B.d.A. und meint: Ohne Bedenken des Autors ;-)

Es gibt nun zwei verschiedene Systeme, um die Paarungen zu bestimmen: Das FIDE-System und das Rutschsystem.

Das FIDE-System
---------------

Das FIDE-System ist das offiziell von der FIDE vorgegebene System. Es wird meist durch die bekannten Paarungstabellen verwirklicht, weil es etwas komplizierter ist. Sein Nachteil besteht darin, daß schwer durchschaubar ist, welcher Spieler in welcher Runde und an welchem Platz spielt.

In der ersten Runde finden folgende Spiele statt: 1 gegen n, 2 gegen (n-1), 3 gegen (n-2) usw.

In allen folgenden Runden wird zunächst der Gegner des Spielers n festgelegt: Dies ist der Spieler k+1 in Runde 2, der Spieler 2 in Runde 3, der Spieler k+2 in Runde 4, der Spieler 3 in Runde 5 usw. Dabei haben die Spieler 2,3,...,k Weiß und die anderen Spieler Schwarz.

Alle anderen Spieler spielen jeweils gegen den Spieler, dessen Nummer eins höher ist, als die ihres Gegners aus der vorigen Runde. Der Spieler n wird dabei ausgelassen und nach n-1 kommt der Spieler 1. In den Runden, in denen sie gegen sich selbst kämen, spielen sie stattdessen gegen n. Weiß hat jeweils der Spieler mit der niedrigeren Nummer, falls die Summe der beiden Nummern ungerade ist und sonst umgekehrt.

Das Rutschsystem
----------------

Das Rutschsystem hat gegenüber dem FIDE-System einen entscheidenden Vorteil: Jedem Spieler ist klar, wann er wo in der nächsten Runde gegen wen spielen wird. Das macht den organisatorischen Aufwand wesentlich geringer. (Lediglich in der ersten Runde muß den Spielern bekannt gegeben werden, wo sie Platz nehmen müssen.)

In der ersten Runde finden folgende Spiele statt: An Brett 1 spielt 1 gegen k+1, an Brett 2 spielt k+2 gegen 2, an Brett 3 spielt 3 gegen k+3, an Brett 4 spielt k+4 gegen 4 usw. Dabei werden die Spieler so plaziert, daß die Spieler mit den niedrigen Nummern auf einer und die mit den höheren Nummern auf der anderen Seite eines langen Tisches sitzen, Spieler 2 rechts von Spieler 1.

Nach jeder Runde wechseln dann alle Spieler im Uhrzeigersinn die Plätze. Die Bretter bleiben unverändert stehen. Eine Ausnahme gibt es allerdings bei gerader Teilnehmerzahl: Spieler n (in der ersten Runde ist das bei gerader Zahl von Brettern der weiße und sonst der schwarze Spieler am letzten Brett) bleibt sitzen und dreht nach jeder Runde sein Brett um. Bei ungerader Teilnehmerzahl ist immer der Gegner des virtuellen Spielers n spielfrei.

Wer das Rutschsystem noch nicht kennt, für den mag ein Beispiel hilfreich sein. In der ersten Runde sitzen die Spieler so:

     				4  5  6
     				1  2  3

(Man könnte bei nur 5 Spielern den spielfreien Spieler 3 alleine hinschreiben.) Danach tauschen die Spieler 1-5 im Uhrzeigersinn die Plätze, Spieler 6 bleibt sitzen und dreht sein Brett. Das sieht dann also so aus:

     				1  4  6
     				2  3  5

Dieses Vertauschen der Plätze wird nun einfach nach jeder Runde wiederholt.

Das Schweizer System
====================

Das Schweizer System kommt dann zum Einsatz, wenn es mehr Spieler gibt, als Runden gespielt werden können. Die Idee des Systems ist es, daß gleich starke Spieler gleich starke Gegner haben sollen, andererseits aber am Schluß trotzdem der beste Spieler vorne sein soll.

Vor jeder Runde wird zunächst eine Rangliste gebildet. In der ersten Runde wird diese nach der DWZ (bei Spielern mit ELO-Zahl nach der ELO-Zahl) sortiert. Spieler ohne Zahl kommen ans Tabellenende. Gleich starke Spieler werden alphabetisch sortiert.

Falls n die Zahl der Teilnehmer ist und n ungerade, dann wird per Los einem der Spieler ohne DWZ ein Freilos zugeteilt. Dieser erhält einen kampflosen Punkt. Falls es weniger als 5 Spieler ohne DWZ gibt, dann werden solange noch die jeweils schwächsten Spieler dazugenommen, bis unter mindestens 5 Spielern gelost wird. Im Folgenden gehe ich deshalb wieder davon aus, daß n gerade ist und k = n/2.

In der ersten Runde wird nun gelost, ob der Spieler mit der Nummer 1 Weiß oder Schwarz hat. Falls der Spieler 1 Weiß hat, dann finden folgende Spiele statt: 1 gegen k+1, k+2 gegen 2, 3 gegen k+3, k+4 gegen 4 usw. Falls 1 Schwarz hat, dann sind dabei jeweils die Farben vertauscht.

In den folgenden Runden werden jeweils die Spieler nach Punkten sortiert. Innerhalb einer Gruppe punktgleicher Spieler wird nach der jeweils letzten Runde sortiert. (Das heißt, daß im Laufe des Turniers die DWZ auf die Rangliste immer weniger Einfluß hat und nur noch der Turniererfolg entscheidet.) Diese Einteilung bestimmt die neue Rangliste.

Nun wird beginnend mit der Gruppe der punktbesten Spieler nach und nach versucht, die Spieler der einzelnen Gruppen zu paaren. Innerhalb einer Gruppe werden dazu die Spieler in vier Untergruppen geteilt, je nachdem, welche Farbe sie in der letzten Runde hatten und ob sie in der oberen oder unteren Hälfte der Gruppe stehen. Machen wir ein Beispiel:

         Obere Hälfte, Weiss     Obere Hälfte, Schwarz
            1			    2
            3			    5
            4			    6
     				    7

         Untere Hälfte, Weiß     Untere Hälfte, Schwarz
            8			    11
            9			    12
            10			    13
     				    14

Es sollen (wie in der 1. Runde) möglichst Spieler aus der oberen Hälfte gegen Spieler aus der unteren Hälfte spielen. Um in Zukunft mehr Spiele möglich zu machen, wird versucht, Spieler aus der linken Hälfte gegen Spieler aus der rechten Hälfte zu paaren. Das ist in diesem Fall aber nicht durchgehend möglich: Wenigstens zwei Spieler aus der rechten Hälfte müssen gegeneinander spielen.

Nun wird zunächst ein Gegner für den Spieler 1 gesucht. Nach den obigen Prinzipien ist dies der Spieler 11. Dann bekommt 2 den Spieler 8 als Gegner, dann 3 gegen 12, 4 gegen 14, 5 gegen 9, 6 gegen 10 und schließlich 7 gegen 14.

Das setzt aber voraus, daß alle diese Spiele stattfinden dürfen. Ein Spiel darf stattfinden, wenn

 1. dieselben Spieler noch nicht gegeneinander gespielt haben,

 2. nicht beide Spieler in den letzten beiden Runden dieselbe Farbe hatten. Dies macht es unmöglich, daß ein Spieler in drei aufeinanderfolgenden Runden weiß (oder schwarz) bekommt.

 3. und es möglich ist, die verbleibenden Spieler unter Beachtung der ersten beiden Punkte gegeneinander zu paaren.

Dagegen ist es beispielsweise ausdrücklich erlaubt, daß ein Spieler in 5 Runden viermal Schwarz hat. (Ich persönlich würde das anders vorziehen, aber ich richte mich nach dem Turnierleiterhandbuch des Deutschen Schachbundes.)

Bei ungerader Zahl von Teilnehmern in der Gruppe bleibt ein Spieler übrig. Dieser wird dann in die nächste Gruppe geschoben. Bei ungerader Zahl von Teilnehmern erhält dann der am Schluß übrigbleibende Spieler ein Freilos. Dabei gilt natürlich die Regel, daß kein Spieler zweimal ein Freilos haben darf.

Falls es nicht möglich ist, die Spieler einer Gruppe gegeneinander zu paaren, wird der rangniedrigste Spieler in die nächste Gruppe geschoben. Dies muß natürlich unter Umständen wiederholt werden.

Spätzünder
==========

Im Schweizer System haben Sie nach der ersten Runde noch die Möglichkeit, neue Spieler hinzuzunehmen. Wenn dies nur ein Spieler ist, dann geben Sie dessen Daten einfach ein. Sind es aber mehrere Spieler, dann beeinflussen Sie durch die Reihenfolge der Eingabe die Paarung der Spieler. In diesem Fall sollten Sie das Folgende beachten:

 1. Falls die Teilnehmerzahl bisher ungerade war, dann nehmen Sie den Spieler mit Freilos zu den neuen Spielern dazu.

 2. Bilden Sie unter diesen Spielern eine Rangliste gemäß den bereits beschriebenen Regeln und bilden Sie dann gemäß denselben Regeln die Spiele. See Schweizer System. (Falls Ihnen das zu umständlich ist: Losen Sie's aus! :-)

 3. Falls Sie bisher ein Freilos hatten, dann ändern Sie die Daten des Spielers mit Freilos um in die Daten des ersten neuen Spielers.

 4. Geben Sie die restlichen Spieler ein. Zuletzt evtl. den Spieler, der jetzt ein Freilos erhält.

Entwicklung des Programms
*************************

V1.0
     Die Urversion des Programms wurde auf einem Exidy Sorcerer (ein CP/M-Rechner mit Z80-CPU) in --- Basic geschrieben. Alle Daten standen auf der Diskette, das Programm war dadurch sehr langsam. Der Algorithmus des Schweizer Systems war recht simpel und blieb bei den Versionen 2 bis 4 unverändert.

V2.0
     Auf meinem ersten eigenen Computer (einem C64) in Assembler geschrieben.

V3.0
     Auf meinem ersten Amiga (ein A1000) in AmigaBasic geschrieben. Erste Version, die auch Rundenturniere beherrschte.

V4.0
     Mit dem ersten eigenen C-Compiler (Aztec-C V3.4a) geschrieben.

V4.2
     Auf Anregung von Frank-Thomas Elpelt mit einigen Ergänzungen versehen: Aufnahme von Spielern im Schweizer System nach der ersten Runde, Löschen von ausgeschiedenen Spielern. Durch die inzwischen gestiegenen Ansprüche der Schachspieler an den Auslosungsalgorithmus gab es mehrfach bei Turnieren Ärger, vor allem weil die Behandlung des Farbwechsels (wohl zurecht) als unbefriedigend empfunden wurde.

V5.0
     Auf Anregung von Kai Bolay mit einem zeitgemäßen GUI unter Kickstart 2.x versehen. Algorithmen jetzt gemäß Turnierleiterhandbuchs. DWZ-Wertung eingeführt.

V5.1
     Internationale Version mit Verwendung der locale.library.

V5.1a
     Unbedeutende Fehlerkorrekturen, Lokalisierung für Workbench 2.0

V5.2
     Benutzeroberfläche jetzt mit MUI, ARexx-Port, Setzen von Spielen, Ausgabe von Kreuztabellen und Spielerkarten im Ascii-Format

V5.3
     Einige Fehlerkorrekturen, nutzt einige Vorteile von MUI 2.0, Gewinn- und Remispunktzahlen frei wählbar.

Zukunft des Programms
*********************

Verschiedenes ist vorstellbar. Internationale Wertungen wie ELO- oder USCF- könnten die DWZ-Wertung ergänzen. Die Rundenturniere könnten zusätzlich im Rutschsystem ausgetragen werden. Es könnte doppelrundige Rundenturniere geben. Zur Steigerung der Geschwindigkeit könnte man die Auslosung in Assembler schreiben.

Alle diese Änderungen sind für mich auf jeden Fall nicht nötig. Ich werde sie nur dann einbauen (und überhaupt nur dann weitere Arbeit in das Programm stecken), wenn (wie ich hoffe) ein gewisses Echo von den Benutzern zurückkommt. (Bei den internationalen Wertungen wäre ich mangels Dokumentation sogar auf Hilfe angewiesen.) Es liegt also an Ihnen.

Danksagungen
************

Danken möchte ich:

Stefan Stuntz
     für die Erstellung von MUI. Wer jetzt nicht mit der Benutzeroberfläche zufrieden ist, dem ist nicht zu helfen.

Reinhard Spisser und Sebastiano Vigna
     für die Amiga-Version von texinfo, mit der diese Dokumentation geschrieben ist.

Der Free Software Foundation
     für die Urversion von texinfo und für viele andere hervorragende Programme.

Matt Dillon
     für DICE und besonders für DME.

Den Betatestern
     Kai Bolay (kaib), Frank Geider, Franz Hemmer, Jürgen Lang (Quarvon), Christian Soltenborn sowie Volker Zink (Der Zinker).

Meinem Freund Mathias Mörsch
     für seine Hilfe bei der englischen Übersetzung der Dokumentation: Hat es wenigstens ein Gutes, daß er seit 5 Jahren in den USA steckt.

Christian Bauernfeind (Baffy)
     für verschiedene Fehlermeldungen.

Den Leuten von #AmigaGer
     für die Beantwortung vieler dummer Fragen und für viele Augenblicke erfreulich ungezügelten Schwachsinns :-), z.B. PowerStat (Kai Hoffmann), ZZA (Bernhard Möllemann), Stargazer (Petra Zeidler), stefanb (Stefan Becker), Tron (Mathias Scheler), ill (Markus Illenseer) und jow (Jürgen Weinelt).

Commodore
     für den Amiga und für die Kickstart 2.0 :-) Macht weiter mit der Kiste, dann bin ich vielleicht auch die nächsten 8 Jahre Amiga-Benutzer!

Douglas Adams und Tom Sharpe
     für das Erdenken von Arthur Dent und Henry Wilt, meinen Lieblings(anti)helden.

und meinen Eltern für ihre Badewanne.
     Nirgends kann man besser nachdenken. ;-)

Literatur
*********

Das ELO-System
     von Peter-Zöfel, Friedrich-Fröbel-Str. 5, 35041 Marburg und Karl-Heinz-Glenz, Friedenau 22, 46284 Dorsten 21, von den Autoren selbst verlegt.

Turnierleiterhandbuch des Deutschen Schachbundes
     von Ernst Schubart und Helmut Nöttger, de Gruyter Verlag, Berlin, New York, 1987

Alle Algorithmen und Richtlinien folgen den in diesen Büchern vorgegebenen.